Members
Overall Objectives
Application Domains
Software and Platforms
New Results
Partnerships and Cooperations
Dissemination
Bibliography
XML PDF e-pub
PDF e-Pub


Section: New Results

Non-linear computational geometry

Participants : Guillaume Moroz, Sylvain Lazard, Marc Pouget, Yacine Bouzidi, Laurent Dupont.

Solving bivariate systems and topology of algebraic curves

In the context of our algorithm Isotop for computing the topology of algebraic curves [4] , we work on the problem of solving a system of two bivariate polynomials. We focus on the problem of computing a Rational Univariate Representation (RUR) of the solutions, that is, roughly speaking, a univariate polynomial and two rational functions which map the roots of the polynomial to the two coordinates of the solutions of the system.

Separating linear forms.   We first presented an algorithm for computing a separating linear form of a system of bivariate polynomials with integer coefficients, that is a linear combination of the variables that takes different values when evaluated at distinct (complex) solutions of the system. In other words, a separating linear form defines a shear of the coordinate system that sends the algebraic system in generic position, in the sense that no two distinct solutions are vertically aligned. The computation of such linear forms is at the core of most algorithms that solve algebraic systems by computing rational parameterizations of the solutions and, moreover, the computation of a separating linear form is the bottleneck of these algorithms, in terms of worst-case bit complexity. Given two bivariate polynomials of total degree at most d with integer coefficients of bitsize at most τ, our algorithm computes a separating linear form in O˜B(d8+d7τ) bit operations in the worst case, which decreases by a factor d2 the best known complexity for this problem (O˜B refers to the complexity where polylogarithmic factors are omitted and OB refers to the bit complexity). This result was presented at the International Symposium on Symbolic and Algebraic Computation in 2013 [19] and submitted to a journal [23] .

Solving bivariate systems & RURs.   Given such a separating linear form, we also presented an algorithm for computing a RUR with worst-case bit complexity in O˜B(d7+d6τ) and a bound on the bitsize of its coefficients in O˜(d2+dτ). We showed in addition that isolating boxes of the solutions of the system can be computed from the RUR with O˜B(d8+d7τ) bit operations. Finally, we showed how a RUR can be used to evaluate the sign of a bivariate polynomial (of degree at most d and bitsize at most τ) at one real solution of the system in O˜B(d8+d7τ) bit operations and at all the Θ(d2) real solutions in only O(d) times that for one solution. These results were also presented at the International Symposium on Symbolic and Algebraic Computation in 2013 [18] and submitted to a journal [22] .

This work is done in collaboration with Fabrice Rouillier (project-team Ouragan at Inria Paris-Rocquencourt).

Reflection through quadric mirror surfaces

We addressed the problem of finding the reflection point on a quadric mirror surfaces of a light ray emanating from a 3D point source P1 and going through another 3D point P2, the camera center of projection. This is a classical problem known as Alhazen's problem dating from around 1000 A.D. and based on the work of Ptolomy around 150 A.D. [31] , [33] . We proposed a new algorithm for this problem based on our algorithm for the computation of the intersection of quadrics [7] , [30] and using a characterization the reflection point as the tangential intersection point between the mirror and an ellipsoid with foci P1 and P2. The implementation is in progress. This work is done in collaboration with Nuno Gonçalves, University of Coimbra (Portugal).

Fast polynomial evaluation and composition

Evaluating a polynomial can be done with different evaluation schemes. The Hörner scheme for example allows to evaluate a polynomial of degree n in O(n) arithmetic operations. When the cost of the arithmetic operations is constant, such as in floating point arithmetic, this leads to O(n) binary operations. However, with integers, the size of the elements grows linearly after each multiplication and this may lead to O(n2) binary operations. This problem arises also with polynomial composition.

The best way to handle these cases is to use divide-and-conquer algorithms to keep a linear complexity in the degree up to logarithmic factors. State-of-the-art algorithms split at the highest pure power of 2 lower or equal to n2. However when n is not a pure power of 2, this strategy might not be optimal.

We developed the library fast_polynomial to explore different divide-and-conquer schemes and observed notably that splitting at n2 is more efficient in some cases. In particular, this evaluation scheme does not suffer the staircase effect observed in state-of-the-art evaluations. Experimentally, it is always faster than our own implementation of the classical divide-and-conquer scheme, and faster than the state of the art library Flint 2 when the degree of the input polynomial is between 2k and 2k+2k-1. These results are presented in the technical report [26] .